Methods and devices for channel decoding a data stream containing useful data and redundant data are known from [1].
This principle known from is based on the model, shown in FIG. 2, of digital information transmission with channel coding and source coding.
In the model 200 of digital information transmission, source information 202 from a source 201 is supplied to a source coder 203 in which a data stream 204 is generated.
The data stream 204 is supplied to a channel coder 205, coded by it, and the channel-coded data stream 206 is supplied to a modulator 207 where the channel-coded data stream 206 is modulated onto a carrier signal of predeterminable frequency and is supplied as modulated signal 208 via physical channel 209, for example via a radio link or a telephone line, to a receiver which has a demodulator 210.
In the physical channel 209, the modulated signal 208 is subject to disturbances 211 as a result of which a disturbed modulated signal 212 is generated.
A demodulated data stream 213 is supplied to a channel decoder 214, in which channel decoding takes place, as a result of which a channel-decoded data stream 215 is generated. The channel-decoded data stream 215 is decoded in a source decoder 216 and supplied as resultant data stream 217 to a sink 218.
Source coding is understood to be a coding in which the data to be transmitted are compressed; that is to say, superfluous redundancy in the data to be transmitted is eliminated.
In the context of the present invention, channel coding is understood to be a method by which a data stream is coded by adding redundant data so that the data stream to be transmitted with the least possible number of errors can be transmitted from a source to a sink. Thus, redundancy is added in a controlled manner to the actual useful data during the channel coding at the transmitting end so that errors arising during a transmission via the physical channel 209 can be detected and corrected at the receiving end.
A principle on which some methods of channel coding are based is the principle of forward error correction; i.e., errors determined at the receiving end are corrected directly in this principle. Examples of forward error correction methods are methods which use block codes, convolutional codes, punctured convolutional codes or concatenated codes. To illustrate, the channel decoding in forward error correction methods only takes place from the received data stream—i.e., without retransmission requests via a return channel.
Alternative methods for channel coding are the methods called automatic repeat request, ARQ methods for short, which are based on the fact that errors are detected at the receiving end and the transmission errors are corrected with the aid of retransmissions.
The combination of forward error correction methods and ARQ methods is called hybrid ARQ method, described in [2]. In such a method, the useful information is first coded with an error-detecting code at the transmitting end. The useful data, together with the added redundancy, are then coded with an error-correcting code. At the receiving end, the error-correcting code is first decoded (forward error correction). Using error-detecting code, a check is then performed to see whether there are still residual errors in the decoded data stream. If this is so, a retransmission of the data is requested via a return channel (repeat request). The advantage of hybrid ARQ methods is that a quasi-error-free transmission is achieved but a very large delay in the transmission of the complete error-free data must be accepted and the existing bandwidth is not efficiently utilized due to the retransmissions.
The disadvantageous factor in the methods for channel coding and channel decoding is that a large number of redundant data must be added to the useful data, as a result of which the available useful data rate is clearly reduced.
However, a high useful data rate is required particularly for the transmission of video data.
In an ARQ method, a further disadvantage can be seen in the fact that, although protected transmission of the useful data is possible, a considerable delay in the reception of the complete data must be registered at the receiver due to the retransmission of useful data by the transmitter as a result of which such a method is not suitable, in particular, for a real-time application.
For this reason, only relatively simple channel coding methods based on the principle of forward error correction, such as a convolutional code with a soft-decision Viterbi decoder, are normally used; particularly in the transmission of video data. This leads to a high residual error rate after the channel decoding, particularly in the case of a severely disturbed physical channel, as a result of which the image quality of the decoded image is considerably impaired.
From [3], it is known to subject useful data to channel coding twice in succession and, after transmission via the physical channel, to perform channel decoding twice in succession (serial code concatenation). In serial code concatenation, the useful data are coded with an error-correcting code (outer code). The resultant data are then coded with a second code (the inner code). After the transmission, the inner code is channel decoded first, followed by the outer code.
In serial code concatenation, it is known that the decoders exchange information and that the decoding can be iterative (compare [6]). Iterative decoding means that the outer channel decoder does not immediately forward the decoded data stream to the source decoder but first returns a side information item to the channel decoder for the inner code. The latter forwards the data stream contained in the new decoding of the inner code to the outer channel decoder which then also decodes the outer code again. This procedure can be iteratively repeated (iterative decoding).
The disadvantageous factor in this procedure is that the amount of required redundant data is even increased due to doubled channel coding which leads to a further reduction in the available useful data rate in the transmission of data via a physical channel.
From [4], a method for video frame coding is known in which a synchronization code, via which a predetermined position of a data stream element within a part of a digitized frame is in each case described, is provided within the data stream during the source coding.
Thus, a synchronization code can be used, for example, for
indicating the beginning or the end of a block,
indicating the beginning or the end of a macroblock, or
indicating the beginning or the end of a frame.
Furthermore, synchronization codes are usually provided for indicating the beginning or the end of a data packet via which the source-coded data to be transmitted are to be transmitted.
In this manner, it is possible to allocate bit sequences within the received data stream unambiguously to a position within the data stream due to the detected synchronization code during the source decoding. In other words, the synchronization code determines the position of the data stream element within the data stream.
Furthermore, methods which detect synchronization codes in a data stream are known from [5].
The present invention is directed toward channel-decoding a data stream containing useful data and redundant data and making it possible to provide an improved error detection compared with the usual channel decoding methods with a reduced amount of redundant data compared with known methods for forward error correction.